/**
 * 
 */
package com.tool;

import java.io.File;
import java.time.Duration;
import java.time.LocalDateTime;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.io.file.FileAppender;

/**
 * @author w_weizhen@sina.com
 * 
 */
public class Log 
{
    // 写日志,这里不用组件,自己写一个简单的
    public static void log(String content)
    {
        //日志是否开启
        if (!Parameter.log) {return;}
        //当前时间
        String now = DateUtil.now();
        content = now + "  " + content;
        //日志文件路径
        String path = Parameter.log_path + DateUtil.today()+".log";
        //写入文件
        File file = new File(path);
        FileAppender appender = new FileAppender(file, 10, true);
        appender.append(content);
        appender.flush();
    }
    
    // 管理过期日志
    public static void expireLog()
    {
        log("开始管理过期日志!");
        try {
            //日志文件路径
            File directory = new File(Parameter.log_path);
            if(!directory.exists())
            {
                log("结束管理过期日志!日志目录不存在!");
                return;
            }
            File[] files = directory.listFiles();
            if (files==null||files.length<1) 
            {
                log("结束管理过期日志!没有日志文件!");
                return;
            }
            //当前时间
            String now = DateUtil.today();
            LocalDateTime end = LocalDateTimeUtil.parse(now, DatePattern.NORM_DATE_PATTERN);
            for (File file : files) 
            {
                String name = file.getName();
                LocalDateTime start = LocalDateTimeUtil.parse(name.replaceAll(".log", ""), DatePattern.NORM_DATE_PATTERN);
                Duration between = LocalDateTimeUtil.between(start, end);
                if(between.toDays() >= Parameter.expire_logs_days)
                {
                    file.delete();
                }
            }
        } catch (Exception e) {
            log(e.toString());
        }
        log("结束管理过期日志!");
    }
}